#ifndef RAID_H_
#define RAID_H_

#include "Prueba-ArchConfig.h"
#include  "lista.h"
#include  "listaHD.h"

typedef tListaHD Planificadores;
typedef struct{
	Disco* pHD;
	Planificadores* pPlanif;
}tSincro;

typedef struct{
	Disco* pHD;
	Pedido* pPedido;
}tSend;

//CONSTANTES
static int cREAD=0;
static int cWRITE=1;

//GLOBALES
pthread_mutex_t s_pop_Pedido;
pthread_mutex_t s_pop_HD[4];

tLista Pedidos;
Planificadores Planif;
datosConfigPPD *archPPD;


int SocketReciveFS_read(int sock, int32_t s);
int SocketReciveFS_write(int sock, int32_t s, void* b, int len);
int EnviarLecturaPlanif(Planificadores* ps, Pedido* p );
int EnviarEscituraPlanif(Planificadores* ps, Pedido* p );
void* ProcesarPedidosFS(void* vplanif);
int VerifAllHD(Planificadores* ps, Pedido* p);
void SocketHD_Disconect(Planificadores* ps, int sock);


#endif /* RAID_H_ */
